home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2007 January, February, March & April
/
Chip-Cover-CD-2007-02.iso
/
Pakiet bezpieczenstwa
/
mini Pentoo LiveCD 2006.1
/
mpentoo-2006.1.iso
/
livecd.squashfs
/
usr
/
include
/
pwdb
/
pwdb_unix.h
< prev
next >
Wrap
C/C++ Source or Header
|
2005-10-13
|
4KB
|
154 lines
/*
* external defines for the pwdb libraries
*
* this library includes defines for passwd+shadow and group files
*/
#ifndef PWDB_STANDARD_PUBLIC_H
#define PWDB_STANDARD_PUBLIC_H
/*
* The definitions for VANILLA UNIX
*/
/* STRUCTURE(S) */
struct __pwdb_passwd { /* The passwd structure. */
char *pw_name; /* Username. */
char *pw_passwd; /* Password. */
__uid_t pw_uid; /* User ID. */
__gid_t pw_gid; /* Group ID. */
char *pw_gecos; /* Real name. */
char *pw_dir; /* Home directory. */
char *pw_shell; /* Shell program. */
};
/* FUNCTIONS */
/*
* Read next entry from the password-file stream, opening it if necessary.
*/
struct __pwdb_passwd *__pwdb_getpwent(void);
/*
* Open and close the password-file stream
*/
void __pwdb_setpwent(void);
void __pwdb_endpwent(void);
/*
* Read/write password entry from/to __stream
*/
struct __pwdb_passwd *__pwdb_fgetpwent(FILE *__stream);
int __pwdb_putpwent(__const struct __pwdb_passwd *__p, FILE *__stream);
/*
* Obtain pw entries for the user identified by
* (i) their UID, or
* (ii) their "username"
*/
struct __pwdb_passwd *__pwdb_getpwuid(__uid_t __uid);
struct __pwdb_passwd *__pwdb_getpwnam(__const char *__name);
/*
* The group manipulation files
*/
struct __pwdb_group { /* The group structure. */
char *gr_name; /* Group name. */
char *gr_passwd; /* Password. */
__gid_t gr_gid; /* Group ID. */
char **gr_mem; /* Member list. */
};
/*
* Rewind the group-file stream.
*/
void __pwdb_setgrent (void);
/*
* Close the group-file stream.
*/
void __pwdb_endgrent (void);
/*
* Read an entry from the group-file stream, opening it if necessary.
*/
struct __pwdb_group * __pwdb_getgrent (void);
/*
* Read/Write a group entry from STREAM.
*/
struct __pwdb_group * __pwdb_fgetgrent (FILE * __stream);
int __pwdb_putgrent(const struct __pwdb_group *__g, FILE *__stream);
/*
* Search for an entry with a matching group ID.
*/
struct __pwdb_group * __pwdb_getgrgid (__gid_t __gid);
/*
* Search for an entry with a matching group name.
*/
struct __pwdb_group * __pwdb_getgrnam (__const char *__name);
/*
* sgetpwent - convert a string to a (struct __pwdb_passwd)
*/
struct __pwdb_passwd *__pwdb_sgetpwent(const char *buf);
struct __pwdb_group * __pwdb_sgetgrent(const char *buf);
/*
* LOW LEVEL FUNCTIONS
*/
/*
* Locking functions we export
*/
int __pwdb_pw_lock (void);
int __pwdb_gr_lock (void);
int __pwdb_pw_unlock (void);
int __pwdb_gr_unlock (void);
/* USER database low-level manipulation */
int __pwdb_pw_close (void);
const struct __pwdb_passwd * __pwdb_pw_locate (const char *);
const struct __pwdb_passwd * __pwdb_pw_locate_id (__uid_t);
int __pwdb_pw_name (const char *);
const struct __pwdb_passwd * __pwdb_pw_next (void);
int __pwdb_pw_open (int);
int __pwdb_pw_remove (const char *);
int __pwdb_pw_rewind (void);
int __pwdb_pw_update (const struct __pwdb_passwd *);
/* GROUP database low-level manipulation */
struct __pwdb_gr_file_entry {
char *grf_line;
int grf_changed;
struct __pwdb_group *grf_entry;
struct __pwdb_gr_file_entry *grf_next;
};
int __pwdb_gr_close (void);
const struct __pwdb_group * __pwdb_gr_locate (const char *);
const struct __pwdb_group * __pwdb_gr_locate_id (__gid_t);
int __pwdb_gr_name (const char *);
const struct __pwdb_group * __pwdb_gr_next (void);
int __pwdb_gr_open (int);
int __pwdb_gr_remove (const char *);
int __pwdb_gr_rewind (void);
int __pwdb_gr_update (const struct __pwdb_group *);
#endif /* PWDB_STANDARD_PUBLIC_H */